<!DOCTYPE html> <html lang=zh-cn style><!--
 Page saved with SingleFile 
 url: https://www.cnblogs.com/guogangj/p/4118605.html 
 saved date: Thu Jan 02 2020 18:18:03 GMT+0800 (China Standard Time)
--><meta charset=utf-8>
<meta name=viewport content="width=device-width, initial-scale=1.0">
<meta name=referrer content=origin>
<meta property=og:description content=弄个HTTPS,是不是要搞个证书,如果没接触过,会被一大堆概念搞混淆的,这篇文章就是帮你理理这些概念.>
<meta http-equiv=Cache-Control content=no-transform>
<meta http-equiv=Cache-Control content=no-siteapp>
<meta http-equiv=X-UA-Compatible content="IE=edge">
<title>那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等) - guogangj - 博客园</title>
<style>input[type=button]{-webkit-appearance:button}#blog_post_info_block{margin-top:20px}#EntryTag{margin-top:0!important}.RecentComment{overflow:hidden}.div_my_zzk{margin-top:5px;margin-bottom:5px}.input_my_zzk{width:100px;vertical-align:middle;height:20px}input.btn_my_zzk{vertical-align:middle;height:22px;font-size:12px;padding-left:5px;padding-right:5px}.login_tips{background-image:url();background-repeat:no-repeat;margin-top:10px;padding:0 0 10px 25px;font-weight:bold}.login_tips a{text-decoration:underline!important}.clear{clear:both}#comment_nav{text-align:right}#comment_nav a{padding-left:10px}#author_profile a:hover{text-decoration:underline}#profile_block{margin-top:5px;line-height:1.5;text-align:left}.blog_comment_body{word-wrap:break-word;overflow:hidden}#post_next_prev{line-height:1.8;font-size:12px}#post_next_prev a.p_n_p_prefix:link{text-decoration:none}#post_next_prev a.p_n_p_prefix:hover{text-decoration:underline}#green_channel{padding:10px 0;margin-bottom:10px;margin-top:10px;border:#c0c0c0 1px dashed;font-size:12px;width:350px;text-align:center}#green_channel a{background:url(%3D%3D) repeat-x;display:inline-block;padding:3px 8px;color:#fff;text-decoration:none;font-weight:bold;cursor:pointer;margin-right:10px;-moz-border-radius:5px;-webkit-border-radius:10px;-moz-box-shadow:0 1px 3px rgba(0,0,0,.5);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.5);text-shadow:0 -1px 1px rgba(0,0,0,.25);vertical-align:middle}#green_channel a:hover{background-image:url()}#green_channel #green_channel_digg{background-color:#2daebf}#green_channel #green_channel_follow{background-color:#e33100}#green_channel #green_channel_favorite{background-color:#ffb515}#green_channel #green_channel_weibo img{vertical-align:middle;border:0;margin-left:5px;box-shadow:none}#green_channel #green_channel_weibo,#green_channel #green_channel_wechat{background:0;padding:3px 2px;-moz-border-radius:none;-webkit-border-radius:none;-moz-box-shadow:none;-webkit-box-shadow:none;text-shadow:none}#green_channel #green_channel_wechat img{width:24px;height:24px;border:medium none;box-shadow:none;margin-left:5px;vertical-align:middle}#cnblogs_post_body{margin-bottom:20px}.ad_text_commentbox{margin-top:5px;margin-bottom:5px}#ad_t2{margin-top:5px;line-height:1.8}#ad_t2 a{margin-right:10px}#opt_under_post{line-height:1.8}.recent_comment_author{text-align:right;margin-right:4px}.comment_vote{text-align:right}.comment_vote a{text-decoration:none!important;padding-left:10px}.recent_comment_body{white-space:pre-wrap;word-wrap:break-word}#cnblogs_post_body{word-break:break-word}#cnblogs_post_body p{margin:10px auto;text-indent:0}#cnblogs_post_body h2{font-size:21px;font-weight:bold;line-height:1.5;margin:10px 0}#div_digg .diggnum{line-height:1.5em!important}#div_digg .burynum{line-height:1.5em!important}#green_channel a:link,#green_channel a:visited,#green_channel a:active{color:#fff!important;border:none!important}#blog-news{overflow:hidden}@-webkit-keyframes ui-dialog-loading{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes ui-dialog-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#EntryTag{font-size:9pt}#author_profile{float:left;width:280px;margin-top:0;margin-bottom:10px;color:#000;margin-left:0;font-size:12px}#author_profile a:hover{text-decoration:underline}.author_avatar{vertical-align:top;float:left;margin-right:5px;padding-top:5px;padding-left:2px;border:0}.author_profile_info{float:left;line-height:18px}#div_digg{float:right;margin-bottom:10px;margin-right:30px;font-size:12px;width:128px;text-align:center;margin-top:10px}.diggit{float:left;width:46px;height:52px;background:url() no-repeat;text-align:center;cursor:pointer;margin-top:2px;padding-top:5px}.diggnum{font-size:14px;color:#075db3;font-family:Verdana}.buryit{float:right;margin-left:20px;width:46px;height:52px;background:url() no-repeat;text-align:center;cursor:pointer;margin-top:2px;padding-top:5px}.burynum{font-size:14px;color:#075db3;font-family:Verdana}.diggword{margin-top:5px;margin-left:0;font-size:12px;color:gray}*{margin:0;padding:0}body{font-family:verdana,Arial,Helvetica,sans-serif;font-size:10pt;line-height:1.8em}img{border:0}li{list-style:none}input{border:1px solid #999}h1,h2,h3{font-weight:bold;color:#000}a:hover{color:#999}#blogTitle .title{font-size:17pt}#blogTitle .subtitle{font-size:10.5pt}#navigator{background:#f6f6f6;border-width:1px 0;color:#999}.blogStats{float:right}#navList li{float:left;margin-right:20px;font-size:10.5pt}#sideBar h3{margin:16px 0 0 -8px;font-size:14px;text-align:left}#calendar{margin-top:16px;text-align:center}.postTitle,.feedback_area_title{border-bottom:1px solid #ddd;font-size:14px;font-weight:bold;margin:20px 0 10px}.postTitle{margin-top:10px}.postBody p{margin-top:12px}.postBody{font-size:14px;line-height:1.8}.postBody span{line-height:1.8}.postBody a,.feedbackCon a{border-bottom:1px dotted #333;color:#000}.postCon a:hover,.postBody a:hover,.feedbackCon a:hover{border-color:#999}.postDesc{border-bottom:1px dotted #999;color:#999;text-align:right;padding-bottom:20px}.feedbackItem{padding:8px;border-bottom:1px dotted #ccc}.feedbackManage{float:right}.feedbackCon{margin-left:1em}.btn_my_zzk{border:0}#sideBarMain{padding-left:0}p{margin-top:0;margin-bottom:0}body{color:#333;background:#dee7de}div.feedbackItem div.feedbackCon{color:#888;font-size:12px;line-height:135%;padding:7px;padding-right:0}ul#navList li{margin:5px}div#navigator{padding:0;height:0;border:0}div.blogStats{position:absolute;top:110px;color:#666;right:30px}body ul#navList{font-size:12px}ul#navList a:hover{color:#216173}#sideBar{border:1px solid #ced7ce;border-right:3px solid #ced7ce;border-bottom:3px solid #ced7ce;position:absolute;top:86px;left:8px;background:#fff;padding:0;width:280px}div#sideBarMain{padding:0 20px 30px 20px}#mainContent{background:#dee7de;margin-left:300px;margin-right:5px;margin-top:10px}div.forFlow{border:1px solid #ced7ce;border-right:3px solid #ced7ce;border-bottom:3px solid #ced7ce;background:#fff;padding:45px 37px 40px;margin-left:0;left:0}div.postDesc{border:0}div#blogTitle{background:url() left top repeat-x;height:76px;padding:0}div#blogTitle .title{text-indent:30px;padding-top:15px}div#blogTitle .title a{color:#fff}div#blogTitle .subtitle{text-indent:50px;color:#216173;margin-bottom:0}a{color:#399ab2;text-decoration:none}a:hover{color:#9cba39}div.postDesc a:first-child{color:#888}#leftcontentcontainer ul{overflow:hidden}.comment_vote a:link,.comment_vote a:active,.comment_vote a:visited{text-decoration:none;border-bottom:0;color:gray}.comment_vote a:hover{color:#9cba39}div#navigator ul#navList{position:absolute;top:30px;right:20px}div#navigator ul#navList li a{font-size:12px;display:block;background:#5ab2ce;color:#fff;width:65px;padding:4px 0 7px;text-align:center;margin:0;line-height:120%}div#navigator ul#navList li a:hover{background:#7bc3d6}</style>
<style media="only screen and (max-width: 767px)">body{font-size:14px!important;font-family:'PingFang SC','Helvetica Neue','Helvetica','Arial',sans-serif;-webkit-text-size-adjust:none}#blog_nav_rss{display:none!important}#blog_nav_newpost{display:none!important}img{max-width:300px!important;height:auto}#green_channel{width:320px}#sidebar_search_box input[type=text]{width:260px}.commentform{margin-left:10px}div#navigator ul#navList{position:static;top:auto;right:auto}#sideBar{width:auto;position:static}#mainContent{margin-left:5px;margin-top:60px}</style>
<link type=application/rss+xml rel=alternate href=https://www.cnblogs.com/guogangj/rss>
<link type=application/rsd+xml rel=EditURI href=https://www.cnblogs.com/guogangj/rsd.xml>
<link type=application/wlwmanifest+xml rel=wlwmanifest href=https://www.cnblogs.com/guogangj/wlwmanifest.xml>
<link type=image/x-icon rel="shortcut icon" href=><style>.sf-hidden{display:none!important}</style></head>
<body>
 <a name=top></a>
 
 <div id=home>
 <div id=header>
 <div id=blogTitle>
 
<div class=title><a id=Header1_HeaderTitle class="headermaintitle HeaderMainTitle" href=https://www.cnblogs.com/guogangj/>蒋国纲的技术博客</a>
</div>
<div class=subtitle>
技术为解决问题而生
</div>
 </div>
 <div id=navigator>
 
<ul id=navList>
 <li id=nav_sitehome><a id=blog_nav_sitehome class=menu href=https://www.cnblogs.com/>
博客园</a>
</li>
 <li id=nav_myhome>
<a id=blog_nav_myhome class=menu href=https://www.cnblogs.com/guogangj/>
首页</a>
</li>
 <li id=nav_newpost>
<a id=blog_nav_newpost class=menu href="https://i.cnblogs.com/EditPosts.aspx?opt=1">
新随笔</a>
</li>
 <li id=nav_contact>
<a id=blog_nav_contact class=menu href=https://msg.cnblogs.com/send/guogangj>
联系</a></li>
 <li id=nav_rss>
<a id=blog_nav_rss class=menu href=https://www.cnblogs.com/guogangj/rss/>
订阅</a></li>
 <li id=nav_admin>
<a id=blog_nav_admin class=menu href=https://i.cnblogs.com/>
管理</a>
</li>
</ul>
 <div class=blogStats>
 
<span id=stats_post_count>随笔 - 
142&nbsp;</span>
<span id=stats_article_count>文章 - 
0&nbsp;</span>
<span id=stats_comment_count>评论 - 
579</span>
 </div>
 </div>
 </div>
 <div id=main>
 <div id=mainContent>
 <div class=forFlow>
 <div id=post_detail>
 <div id=topics>
 <div class=post>
 <h1 class=postTitle>
 
<a id=cb_post_title_url class=postTitle2 href=https://www.cnblogs.com/guogangj/p/4118605.html>那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)</a>
 </h1>
 <div class=clear></div>
 <div class=postBody>
 
<div id=cnblogs_post_body class=blogpost-body>
 <p>之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作.</p>
<h2>SSL</h2>
<p><strong>SSL</strong> - Secure Sockets Layer,现在应该叫"TLS",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议,而https的加密是基于SSL的,它执行的是一个比较下层的加密,也就是说,在加密前,你的服务器程序在干嘛,加密后也一样在干嘛,不用动,这个加密对用户和开发者来说都是透明的.More:[<a href=http://en.wikipedia.org/wiki/Transport_Layer_Security target=_blank>维基百科</a>]</p>
<p><strong>OpenSSL</strong> - 简单地说,OpenSSL是SSL的一个实现,SSL只是一种规范.理论上来说,SSL这种规范是安全的,目前的技术水平很难破解,但SSL的实现就可能有些漏洞,如著名的"心脏出血".OpenSSL还提供了一大堆强大的工具软件,强大到90%我们都用不到.</p>
<h2>证书标准</h2>
<p><strong>X.509</strong> - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准.</p>
<h2>编码格式</h2>
<p>同样的X.509证书,可能有不同的编码格式,目前有以下两种编码格式.</p>
<p><strong>PEM</strong> - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.<br>查看PEM格式证书的信息:<span style=background-color:#ffff99>openssl x509 -in certificate.pem -text -noout</span><br>Apache和*NIX服务器偏向于使用这种编码格式.</p>
<p><strong>DER</strong> - Distinguished Encoding Rules,打开看是二进制格式,不可读.<br>查看DER格式证书的信息:<span style=background-color:#ffff99>openssl x509 -in certificate.der <strong>-inform der</strong> -text -noout</span><br>Java和Windows服务器偏向于使用这种编码格式.</p>
<h2>相关的文件扩展名</h2>
<p>这是比较误导人的地方,虽然我们已经知道有PEM和DER这两种编码格式,但文件扩展名并不一定就叫"PEM"或者"DER",常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式.</p>
<p><strong>CRT</strong> - CRT应该是certificate的三个字母,其实还是证书的意思,常见于*NIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,相信你已经知道怎么辨别.</p>
<p><strong>CER</strong> - 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.</p>
<p><strong>KEY</strong> - 通常用来存放一个公钥或者私钥,并非X.509证书,编码同样的,可能是PEM,也可能是DER.<br>查看KEY的办法:<span style=background-color:#ffff99>openssl rsa -in mykey.key -text -noout</span><br>如果是DER格式的话,同理应该这样了:<span style=background-color:#ffff99>openssl rsa -in mykey.key -text -noout <strong>-inform der</strong></span></p>
<p><strong>CSR</strong> - Certificate Signing Request,即证书签名请求,这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的信息),在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管好.做过iOS APP的朋友都应该知道是怎么向苹果申请开发者证书的吧.<br>查看的办法:<span style=background-color:#ffff99>openssl req -noout -text -in my.csr</span> (如果是DER格式的话照旧加上-inform der,这里不写了)</p>
<p><strong>PFX/P12</strong> - predecessor of PKCS#12,对*nix服务器来说,一般CRT和KEY是分开存放在不同文件中的,但Windows的IIS则将它们存在一个PFX文件中,(因此这个文件包含了证书及私钥)这样会不会不安全？应该不会,PFX通常会有一个"提取密码",你想把里面的东西读取出来的话,它就要求你提供提取密码,PFX使用的时DER编码,如何把PFX转换为PEM编码？<br><span style=background-color:#ffff99>openssl pkcs12 -in for-iis.pfx -out for-iis.pem -nodes</span><br>这个时候会提示你输入提取代码. for-iis.pem就是可读的文本.<br>生成pfx的命令类似这样:<span style=background-color:#ffff99>openssl pkcs12 -export -in certificate.crt&nbsp;-inkey privateKey.key&nbsp;-out certificate.pfx&nbsp;-certfile CACert.crt</span></p>
<p>其中CACert.crt是CA(权威证书颁发机构)的根证书,有的话也通过-certfile参数一起带进去.这么看来,PFX其实是个证书密钥库.</p>
<p><strong>JKS</strong> - 即Java Key Storage,这是Java的专利,跟OpenSSL关系不大,利用Java的一个叫"keytool"的工具,可以将PFX转为JKS,当然了,keytool也能直接生成JKS,不过在此就不多表了.</p>
<h2>证书编码的转换</h2>
<p><strong>PEM转为DER</strong>&nbsp;<span style=background-color:#ffff99>openssl x509 -in cert.crt -outform der -out cert.der</span></p>
<p><strong>DER转为PEM</strong>&nbsp;<span style=background-color:#ffff99>openssl x509 -in cert.crt -inform der -outform pem -out cert.pem</span></p>
<p>(提示:要转换KEY文件也类似,只不过把x509换成rsa,要转CSR的话,把x509换成req...)</p>
<h2>获得证书</h2>
<p><strong>向权威证书颁发机构申请证书</strong></p>
<p>用这命令生成一个csr: <span style=background-color:#ffff99>openssl req -newkey rsa:2048 -new -nodes -keyout my.key -out my.csr<br></span>把csr交给权威证书颁发机构,权威证书颁发机构对此进行签名,完成.保留好csr,当权威证书颁发机构颁发的证书过期的时候,你还可以用同样的csr来申请新的证书,key保持不变.</p>
<p><strong>或者生成自签名的证书<br></strong><span style=background-color:#ffff99>openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem</span><br>在生成证书的过程中会要你填一堆的东西,其实真正要填的只有Common Name,通常填写你服务器的域名,如"yourcompany.com",或者你服务器的IP地址,其它都可以留空的.<br>生产环境中还是不要使用自签的证书,否则浏览器会不认,或者如果你是企业应用的话能够强制让用户的浏览器接受你的自签证书也行.向权威机构要证书通常是要钱的,但现在也有免费的,仅仅需要一个简单的域名验证即可.有兴趣的话查查"沃通数字证书".</p>
</div>
<div id=MySignature class=sf-hidden></div>
<div class=clear></div>
<div id=blog_post_info_block>
<div id=EntryTag>
 标签: 
 <a href=https://www.cnblogs.com/guogangj/tag/%E5%85%B6%E5%AE%83/>其它</a>, <a href=https://www.cnblogs.com/guogangj/tag/JavaWeb/>JavaWeb</a>, <a href=https://www.cnblogs.com/guogangj/tag/Unix%2FLinux/>Unix/Linux</a></div>
 <div id=blog_post_info>
<div id=green_channel>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html id=green_channel_digg>好文要顶</a>
 <a id=green_channel_follow href=https://www.cnblogs.com/guogangj/p/4118605.html>关注我</a>
 <a id=green_channel_favorite href=https://www.cnblogs.com/guogangj/p/4118605.html>收藏该文</a>
 <a id=green_channel_weibo href=https://www.cnblogs.com/guogangj/p/4118605.html title=分享至新浪微博><img src= alt></a>
 <a id=green_channel_wechat href=https://www.cnblogs.com/guogangj/p/4118605.html title=分享至微信><img src= alt></a>
</div>
<div id=author_profile>
 <div id=author_profile_info class=author_profile_info>
 <a href=https://home.cnblogs.com/u/guogangj/ target=_blank><img src="" class=author_avatar alt></a>
 <div id=author_profile_detail class=author_profile_info>
 <a href=https://home.cnblogs.com/u/guogangj/>guogangj</a><br>
 <a href=https://home.cnblogs.com/u/guogangj/followees/>关注 - 2</a><br>
 <a href=https://home.cnblogs.com/u/guogangj/followers/>粉丝 - 413</a>
 </div>
 </div>
 <div class=clear></div>
 <div id=author_profile_honor></div>
 <div id=author_profile_follow>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html>+加关注</a>
 </div>
</div>
<div id=div_digg>
 <div class=diggit>
 <span class=diggnum id=digg_count>20</span>
 </div>
 <div class=buryit>
 <span class=burynum id=bury_count>0</span>
 </div>
 <div class=clear></div>
 <div class=diggword id=digg_tips>
 </div>
</div>
</div>
 <div class=clear></div>
 <div id=post_next_prev>
 <a href=https://www.cnblogs.com/guogangj/p/4051894.html class=p_n_p_prefix>« </a> 上一篇： <a href=https://www.cnblogs.com/guogangj/p/4051894.html title="发布于 2014-10-26 13:17">给Macbook Pro更换固态硬盘并转移系统的最简单办法</a>
 <br>
 <a href=https://www.cnblogs.com/guogangj/p/4131704.html class=p_n_p_prefix>» </a> 下一篇： <a href=https://www.cnblogs.com/guogangj/p/4131704.html title="发布于 2014-11-29 18:48">HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)</a>
</div>
</div>
 </div>
 <div class=postDesc>posted @ 
<span id=post-date>2014-11-24 14:51</span>&nbsp;
<a href=https://www.cnblogs.com/guogangj/>guogangj</a>&nbsp;
阅读(<span id=post_view_count>63463</span>)&nbsp;
评论(<span id=post_comment_count>9</span>)&nbsp;
<a href="https://i.cnblogs.com/EditPosts.aspx?postid=4118605" rel=nofollow>编辑</a>&nbsp;
<a href=https://www.cnblogs.com/guogangj/p/4118605.html>收藏</a></div>
 </div>
<a name=!comments></a>
<div id=blog-comments-placeholder>
<div id=comment_pager_top>
 
</div>
<div class=feedback_area_title>评论列表</div>
<div class=feedbackNoItems></div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3236430 class=layer>#1楼</a>
<a name=3236430 id=comment_anchor_3236430></a>
 
 
<span class=comment_date>2015-07-27 19:44</span>
 
 
 <a id=a_comment_author_3236430 href=https://www.cnblogs.com/ahdung/ target=_blank>ahdung</a>
 <div class=feedbackCon>
 
<div id=comment_body_3236430 class=blog_comment_body>
 学习了，博主理的比较清晰。
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 <span id=comment_3236430_avatar style=display:none>
 https://pic.cnblogs.com/face/234704/20150824143819.png
 </span>
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3520992 class=layer>#2楼</a>
<a name=3520992 id=comment_anchor_3520992></a>
 
 
<span class=comment_date>2016-09-27 21:53</span>
 
 
 <a id=a_comment_author_3520992 href=https://home.cnblogs.com/u/1030590/ target=_blank>kyu_12</a>
 <div class=feedbackCon>
 
<div id=comment_body_3520992 class=blog_comment_body>
 谢谢，很有帮助
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3717875 class=layer>#3楼</a>
<a name=3717875 id=comment_anchor_3717875></a>
 
 
<span class=comment_date>2017-06-19 19:52</span>
 
 
 <a id=a_comment_author_3717875 href=https://home.cnblogs.com/u/81872/ target=_blank>diming</a>
 <div class=feedbackCon>
 
<div id=comment_body_3717875 class=blog_comment_body>
 很好，谢谢
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3742391 class=layer>#4楼</a>
<a name=3742391 id=comment_anchor_3742391></a>
 
 
<span class=comment_date>2017-07-24 18:42</span>
 
 
 <a id=a_comment_author_3742391 href=https://home.cnblogs.com/u/684837/ target=_blank>zhangkehu</a>
 <div class=feedbackCon>
 
<div id=comment_body_3742391 class=blog_comment_body>
 流。。。。。。。。。。。。。。碧
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3784122 class=layer>#5楼</a>
<a name=3784122 id=comment_anchor_3784122></a>
 
 
<span class=comment_date>2017-09-14 15:06</span>
 
 
 <a id=a_comment_author_3784122 href=https://www.cnblogs.com/frankb/ target=_blank>FrankB</a>
 <div class=feedbackCon>
 
<div id=comment_body_3784122 class=blog_comment_body>
 真心很全面
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 <span id=comment_3784122_avatar style=display:none>
 https://pic.cnblogs.com/face/1066381/20161119152304.png
 </span>
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3809497 class=layer>#6楼</a>
<a name=3809497 id=comment_anchor_3809497></a>
 
 
<span class=comment_date>2017-10-13 13:54</span>
 
 
 <a id=a_comment_author_3809497 href=https://www.cnblogs.com/Dicky-Zhang/ target=_blank>Dicky_Zhang</a>
 <div class=feedbackCon>
 
<div id=comment_body_3809497 class=blog_comment_body>
 mark
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#3947805 class=layer>#7楼</a>
<a name=3947805 id=comment_anchor_3947805></a>
 
 
<span class=comment_date>2018-04-10 16:04</span>
 
 
 <a id=a_comment_author_3947805 href=https://home.cnblogs.com/u/1247649/ target=_blank>9dragon</a>
 <div class=feedbackCon>
 
<div id=comment_body_3947805 class=blog_comment_body>
 是不是少了 jks
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#4174075 class=layer>#8楼</a>
<a name=4174075 id=comment_anchor_4174075></a>
 
 
<span class=comment_date>2019-01-30 10:55</span>
 
 
 <a id=a_comment_author_4174075 href=https://www.cnblogs.com/lhever/ target=_blank>善水流心</a>
 <div class=feedbackCon>
 
<div id=comment_body_4174075 class=blog_comment_body>
 nice you
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 <span id=comment_4174075_avatar style=display:none>
 https://pic.cnblogs.com/face/846614/20151127175053.png
 </span>
 </div>
 </div>
 </div>
 <div class=feedbackItem>
 <div class=feedbackListSubtitle>
 <div class=feedbackManage>
 &nbsp;&nbsp;
 
<span class=comment_actions>
 
 
 
 
</span>
 </div>
 
 
<a href=#4234534 class=layer>#9楼</a>
<a name=4234534 id=comment_anchor_4234534></a>
 <span id=comment-maxId style=display:none>4234534</span>
 <span id=comment-maxDate style=display:none>2019/4/18 下午6:17:25</span>
 
 
<span class=comment_date>2019-04-18 18:17</span>
 
 
 <a id=a_comment_author_4234534 href=https://www.cnblogs.com/andy9468/ target=_blank>安迪9468</a>
 <div class=feedbackCon>
 
<div id=comment_body_4234534 class=blog_comment_body>
 mark
</div>
 <div class=comment_vote>
 <span class=comment_error style=color:red></span>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_digg>
 支持(0)
 </a>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html class=comment_burry>
 反对(0)
 </a>
 </div>
 <span id=comment_4234534_avatar style=display:none>
 https://pic.cnblogs.com/face/552284/20170929210855.png
 </span>
 </div>
 </div>
 </div>
<div id=comment_pager_bottom>
 
</div>
</div>
<div id=comment_form class=commentform>
 <a name=commentform></a>
 <div id=divCommentShow></div>
 <div id=comment_nav><span id=span_refresh_tips></span><a href=https://www.cnblogs.com/guogangj/p/4118605.html id=lnk_RefreshComments runat=server clientidmode=Static>刷新评论</a><a href=#>刷新页面</a><a href=#top>返回顶部</a></div>
 <div id=comment_form_container><div class=login_tips>
 注册用户登录后才能发表评论，请 
 <a rel=nofollow href=https://www.cnblogs.com/guogangj/p/4118605.html class=underline>登录</a>
 或 
 <a rel=nofollow href=https://www.cnblogs.com/guogangj/p/4118605.html class=underline>注册</a>，
 <a href=https://www.cnblogs.com/>访问</a> 网站首页。
</div></div>
 <div class=ad_text_commentbox id=ad_text_under_commentbox></div>
 <div id=ad_t2><a href=http://www.ucancode.com/index.htm target=_blank>【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库</a><br><a href=http://click.aliyun.com/m/1000081987/ target=_blank>【推荐】阿里云双11返场来袭，热门产品低至一折等你来抢！</a><br><a href="https://cloud.tencent.com/act/seckill?fromSource=gwzcw.3168381.3168381.3168381&amp;utm_medium=cpc&amp;utm_id=gwzcw.3168381.3168381.3168381" target=_blank>【推荐】腾讯云热门云产品限时秒杀，爆款1核2G云服务器99元/年！</a><br><a href="https://cloud.baidu.com/campaign/Promotion-20191111/index.html?track=cp:dsp|pf:pc|pp:chui-bokeyuan-huodong-19shuangshiyiganenji-BCC-cpaxingshi-191210|pu:cpa-xingshi|ci:2019syj|kw:2172212" target=_blank>【推荐】百度智能云岁末感恩季，明星产品低至1元新老用户畅享</a><br><a href="https://www.jdcloud.com/cn/activity/newUser?utm_source=DMT_cnblogs&amp;utm_medium=CH&amp;utm_campaign=09vm&amp;utm_term=Virtual-Machines" target=_blank>【活动】京东云限时优惠1.5折购云主机，最高返价值1000元礼品！</a><br></div>
 <div id=opt_under_post></div>
 
 
 
 <div id=cnblogs_c1 class="c_ad_block sf-hidden">
 <div id=div-gpt-ad-1546353474406-0 style=height:250px;width:300px></div>
 </div>
 <div id=under_post_news></div>
 <div id=cnblogs_c2 class="c_ad_block sf-hidden">
 <div id=div-gpt-ad-1539008685004-0 style=height:60px;width:468px>
 
 </div>
 </div>
 <div id=under_post_kb>
<div class="itnews c_ad_block sf-hidden">
 <b>最新 IT 新闻</b>:
 <br>
 · <a href=https://news.cnblogs.com/n/652954/ target=_blank>雷军：小米在“5G+AIoT” 战场未来5年投入500亿 做好5个坚持</a>
 <br>
 · <a href=https://news.cnblogs.com/n/652953/ target=_blank>Mozilla 选择 Matrix 作为 IRC 的接替者</a>
 <br>
 · <a href=https://news.cnblogs.com/n/652952/ target=_blank>“本公司专门提供优质软件，并随软件免费送计算机。​”</a>
 <br>
 · <a href=https://news.cnblogs.com/n/652951/ target=_blank>打破垄断！国产HPV疫苗正式获批 世界第三家</a>
 <br>
 · <a href=https://news.cnblogs.com/n/652950/ target=_blank>腾讯科恩称可通过无线协议远程攻入特斯拉车载系统</a>
 <br>
 » <a href=https://news.cnblogs.com/ title="IT 新闻" target=_blank>更多新闻...</a>
</div></div>
 <div id=HistoryToday class="c_ad_block sf-hidden"></div>
 
</div> </div>
</div>
 </div>
 </div>
 <div id=sideBar>
 <div id=sideBarMain>
 
<div id=sidebar_news class=newsItem>
<h3 class=catListTitle>公告</h3>
<div id=blog-news>
 <img src="" alt border=0>
<p>
蒋国纲(Guogang Jiang) 
</p>
<p>
热能与动力工程专业毕业，曾从事过金融、游戏、信息安全、工业控制、仪器仪表、移动应用及车联网等领域的软件开发工作，曾在Windows，Windows Mobile，Linux等平台从事过大量C++编程工作，如今在.net，java，objective c，javascript等开发技术里均有涉猎。目前主要从事企业管理类软件开发。工作之余喜欢写写总结，写写博客。技术问题请直接留言，不要私信。
<p>
<p>
旧博客地址：
<ul>
<li>2006-2009&nbsp;<a href=http://blog.csdn.net/guogangj/ target=_blank>CSDN.com</a></li>
<li>2009-2011&nbsp;<a href=http://www.cppblog.com/guogangj target=_blank>CppBlog.com</a></li>
</ul>
<p></p>
 <div id=profile_block>
 昵称：
 <a href=https://home.cnblogs.com/u/guogangj/>
 guogangj
 </a>
 <br>
 园龄：
 <a href=https://home.cnblogs.com/u/guogangj/ title=入园时间：2012-02-28>
 7年10个月
 </a>
 <br>
 粉丝：
 <a href=https://home.cnblogs.com/u/guogangj/followers/>
 413
 </a>
 <br>
 关注：
 <a href=https://home.cnblogs.com/u/guogangj/followees/>
 2
 </a>
 <div id=p_b_follow>
<a href=https://www.cnblogs.com/guogangj/p/4118605.html>+加关注</a></div>
 
 </div>
</div></div>
 <div id=calendar><div id=blog-calendar style=display:none></div></div> 
 
 <div id=leftcontentcontainer>
 
 <div id=blog-sidecolumn>
<div id=sidebar_search class=sidebar-block>
 <div id=sidebar_search class=mySearch>
 <h3 class=catListTitle>搜索</h3>
 <div id=sidebar_search_box>
 <div id=widget_my_zzk class=div_my_zzk>
 <input type=text id=q class=input_my_zzk value>&nbsp;<input type=button value=找找看 id=btnZzk class=btn_my_zzk>
 </div>
 <div id=widget_my_google class=div_my_zzk>
 <input type=text name=google_q id=google_q class=input_my_zzk value>&nbsp;<input type=button value=谷歌搜索 class=btn_my_zzk>
 </div>
 </div>
 </div>
</div>
<div id=sidebar_recentposts class=sidebar-block>
 
<div class=catListEssay>
 <h3 class=catListTitle>最新随笔</h3>
 <ul>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/12123211.html>1.用了一年多之后才搞懂阿里云OSS收费细则</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/12082681.html>2.“生成能够被扫描枪正常扫描出中文的二维码”</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/11590456.html>3..NET Core 3.0正式版发布</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/11403992.html>4.快速删除一个“大目录”</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/11403259.html>5.WSL2(预览版)体验笔记</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/10991120.html>6.局域网地址为什么是192.168.X.X？为什么连上公司的ＶＰＮ就上不了网？</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/10891483.html>7.群晖NAS再再折腾</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/10630733.html>8.程序员的笔记本电脑</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/10547779.html>9.群晖NAS再折腾</a>
 </li>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/p/10536985.html>10.dotnet中Stream、string及byte[]的相关操作</a>
 </li>
 </ul>
</div>
</div>
<div id=sidebar_toptags class=sidebar-block>
 
<div class=catListTag>
 <h3 class=catListTitle>我的标签</h3>
 <ul>
 
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/dotNet/>dotNet</a>(28)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/IT%E6%8A%80%E5%B7%A7/>IT技巧</a>(19)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/%E5%BC%80%E5%8F%91%E7%9A%84%E6%95%85%E4%BA%8B/>开发的故事</a>(15)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/ASP.net%2FMVC/>ASP.net/MVC</a>(13)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/JavaWeb/>JavaWeb</a>(11)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/%E5%85%B6%E5%AE%83/>其它</a>(9)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/%E8%81%8C%E4%B8%9A%E6%84%9F%E6%82%9F/>职业感悟</a>(9)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/Web%20API/>Web API</a>(8)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/WPF/>WPF</a>(7)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/Unix%2FLinux/>Unix/Linux</a>(7)
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/tag/>更多</a>
 </li>
 </ul>
</div>
</div>
<div id=sidebar_categories>
 
 <div class=catListPostArchive>
 <h3 class=catListTitle>
 
随笔档案
 </h3>
 <ul>
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/12.html rel target>
 2019年12月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/09.html rel target>
 2019年9月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/08.html rel target>
 2019年8月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/06.html rel target>
 2019年6月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/05.html rel target>
 2019年5月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/03.html rel target>
 2019年3月(3)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2019/01.html rel target>
 2019年1月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/12.html rel target>
 2018年12月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/11.html rel target>
 2018年11月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/09.html rel target>
 2018年9月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/08.html rel target>
 2018年8月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/07.html rel target>
 2018年7月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/06.html rel target>
 2018年6月(3)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/04.html rel target>
 2018年4月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/03.html rel target>
 2018年3月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2018/02.html rel target>
 2018年2月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2017/12.html rel target>
 2017年12月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2017/09.html rel target>
 2017年9月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2017/08.html rel target>
 2017年8月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2017/05.html rel target>
 2017年5月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2017/01.html rel target>
 2017年1月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/12.html rel target>
 2016年12月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/08.html rel target>
 2016年8月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/05.html rel target>
 2016年5月(5)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/04.html rel target>
 2016年4月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/03.html rel target>
 2016年3月(5)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/02.html rel target>
 2016年2月(3)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2016/01.html rel target>
 2016年1月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2015/11.html rel target>
 2015年11月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2015/07.html rel target>
 2015年7月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2015/01.html rel target>
 2015年1月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/11.html rel target>
 2014年11月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/10.html rel target>
 2014年10月(5)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/09.html rel target>
 2014年9月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/08.html rel target>
 2014年8月(4)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/05.html rel target>
 2014年5月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/04.html rel target>
 2014年4月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/03.html rel target>
 2014年3月(6)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/02.html rel target>
 2014年2月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2014/01.html rel target>
 2014年1月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/12.html rel target>
 2013年12月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/10.html rel target>
 2013年10月(6)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/08.html rel target>
 2013年8月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/07.html rel target>
 2013年7月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/06.html rel target>
 2013年6月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/05.html rel target>
 2013年5月(4)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/04.html rel target>
 2013年4月(4)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/03.html rel target>
 2013年3月(8)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/02.html rel target>
 2013年2月(3)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2013/01.html rel target>
 2013年1月(6)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/12.html rel target>
 2012年12月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/11.html rel target>
 2012年11月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/10.html rel target>
 2012年10月(4)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/09.html rel target>
 2012年9月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/08.html rel target>
 2012年8月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/07.html rel target>
 2012年7月(5)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/06.html rel target>
 2012年6月(1)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/04.html rel target>
 2012年4月(2)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/03.html rel target>
 2012年3月(8)
</a>
 
 </li>
 
 <li>
 
<a href=https://www.cnblogs.com/guogangj/archive/2012/02.html rel target>
 2012年2月(2)
</a>
 
 </li>
 
 </ul>
 </div>
</div>
<div id=sidebar_recentcomments class=sidebar-block>
 <div id=recent_comments_wrap class=RecentComment>
 <h3 class=catListTitle>最新评论</h3>
 <div class=RecentCommentBlock>
 <ul>
 <li class=recent_comment_title><a href=https://www.cnblogs.com/guogangj/p/12082681.html#4467515>1. Re:“生成能够被扫描枪正常扫描出中文的二维码”</a></li>
 <li class=recent_comment_body>@ 月渊谢谢，我有空再跟一下这个事情。...</li>
 <li class=recent_comment_author>--guogangj</li>
 <li class=recent_comment_title><a href=https://www.cnblogs.com/guogangj/p/12082681.html#4467472>2. Re:“生成能够被扫描枪正常扫描出中文的二维码”</a></li>
 <li class=recent_comment_body></li>
 <li class=recent_comment_author>--月渊</li>
 <li class=recent_comment_title><a href=https://www.cnblogs.com/guogangj/p/12082681.html#4467463>3. Re:“生成能够被扫描枪正常扫描出中文的二维码”</a></li>
 <li class=recent_comment_body>@ guogangj怎么拍视频给你看？...</li>
 <li class=recent_comment_author>--月渊</li>
 <li class=recent_comment_title><a href=https://www.cnblogs.com/guogangj/p/12082681.html#4467462>4. Re:“生成能够被扫描枪正常扫描出中文的二维码”</a></li>
 <li class=recent_comment_body>@ 月渊HID模式是不可能直接“敲”出中文的，你把你的具体情况写一下？...</li>
 <li class=recent_comment_author>--guogangj</li>
 <li class=recent_comment_title><a href=https://www.cnblogs.com/guogangj/p/12082681.html#4467439>5. Re:“生成能够被扫描枪正常扫描出中文的二维码”</a></li>
 <li class=recent_comment_body>免驱动</li>
 <li class=recent_comment_author>--月渊</li>
 </ul>
 </div>
</div>
</div>
<div id=sidebar_topviewedposts class=sidebar-block>
 
<div id=topview_posts_wrap>
 <h3 class=catListTitle>阅读排行榜</h3>
 <div id=TopViewPostsBlock>
 <ul style=word-break:break-all>
 <li>
 <a href=https://www.cnblogs.com/guogangj/p/3235703.html>
 1. Chrome插件（Extensions）开发攻略(117741)
 </a>
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/p/5465740.html>
 2. 用IntelliJ IDEA创建Gradle项目简单入门(64051)
 </a>
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/p/4118605.html>
 3. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)(63463)
 </a>
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/p/3725371.html>
 4. Mac OS X上IntelliJ IDEA 13与Tomcat 8的Java Web开发环境搭建(54750)
 </a>
 </li>
 <li>
 <a href=https://www.cnblogs.com/guogangj/p/4051894.html>
 5. 给Macbook Pro更换固态硬盘并转移系统的最简单办法(53704)
 </a>
 </li>
 </ul>
 </div>
</div>
</div>
</div>
 
 
 </div>
 </div>
 </div>
 <div class=clear></div>
 </div>
 <div class=clear></div>
 <div id=footer class=sf-hidden>
 
Copyright © 2020 guogangj
<br><span id=poweredby>Powered by .NET Core 3.1.0 on Linux</span>
 </div>
</div>
 
